Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.02.2018, 16:54
Новичок на форуме
Отправить личное сообщение для kenasv Посмотреть профиль Найти все сообщения от kenasv
 
Регистрация: 03.02.2018
Сообщений: 1

XMLHttpRequest передача одного значения
Front-end: html страничка с JS. Необходимо чтобы пользователь ввел данные. Фактически строка "008" или "909" (ID в базе данных). ответ от сервера в JSON. Вот такого вида

{"ID":"107","Diapazon":"vse","Adres":"ulKirova","I nfrastructura":"DOM","Prinadlegnost":"RR","Dostup" :"svobodnue","Kluch":"universalnii","Aparatnaa":"2 ","AD":"NO","Contact":"NO","WGS":"65.99 40.778","Primechanie":"nich"}

Ответ надо обработать и вывести в виде таблицы (количество столбцов 2, строк столько же сколько параметров JSON, т.е. 12).

back-end: LAMP. PHP скрипт "cod.php" обрабатывает запрос по переданному значению ID.

<?php
require_once 'connection.php'; // подключаем скрипт
 
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database) 
    or die("Ошибка " . mysqli_error($link));
 
$ID= $_REQUEST[ID];

// выполняем операции с базой данных
$query ="SELECT * FROM `Client` WHERE ID= $ID";
$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link)); 
//if($result)
//{
//    echo "Выполнение запроса прошло успешно";
//}




if (mysqli_num_rows($result) > 0) 
{
	while($row=mysqli_fetch_array($result))
	{
		// заносим данне в массив
    	$client[ID] = $row[ID];
		$client[Surname] = $row[Surname];
		$client[Name] = $row[Name];
		$client[Middlename] = $row[Middlename];
		
	}
}
else
{
$client[Surname] = 'net dannux';
$client[Name] = 'net dannux';
$client[Middlename] =  'net dannux';
}

echo (json_encode($client));

 
// закрываем подключение
mysqli_close($link);
?>


Вопрос в том каким способом передать из JS то самое значение ID? XMLHttpRequest? но вот какого типа именно? Если POST, то потребуется ли переделка серверной части PHP? Я так понимаю, что проще передать через GET, но в примерах не увидел как передается параметр.

https://learn.javascript.ru/ajax-xmlhttprequest
var xhr = new XMLHttpRequest();

xhr.open('GET', '/my/url', true);

xhr.send();

xhr.onreadystatechange = function() {
  if (this.readyState != 4) return;

  // по окончании запроса доступны:
  // status, statusText
  // responseText, responseXML (при content-type: text/xml)

  if (this.status != 200) {
    // обработать ошибку
    alert( 'ошибка: ' + (this.status ? this.statusText : 'запрос не удался') );
    return;
  }

  // получить результат из this.responseText или this.responseXML
}


xhr.open('GET', '/my/url', true); --- тут как то в URL передавать переменную с ID?
Ответить с цитированием
  #2 (permalink)  
Старый 03.02.2018, 17:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от kenasv
строка "008" или "909" (ID в базе данных)
И к чему такие ID?

А так делать:

$ID= $_REQUEST[ID];
// выполняем операции с базой данных
$query ="SELECT * FROM `Client` WHERE ID= $ID";

ни в коем случае нельзя, а тем более используя mysqli.

while($row=mysqli_fetch_array($result)) - не требуется, в mysqli можно получить все строки запроса функцией fetch_all().
Ответить с цитированием
  #3 (permalink)  
Старый 03.02.2018, 17:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от kenasv
Вопрос в том каким способом передать из JS то самое значение ID?
Ответ у вас имеется - чтобы пользователь ввел данные, помещайте на страницу поле ввода, отправляйте значение.

Сообщение от kenasv
Если POST, то потребуется ли переделка серверной части PHP? Я так понимаю, что проще передать через GET
Разница на сервере будет только в массиве из которого нужно будет взять значение - $_POST или $_GET соответственно. Не проще и не сложнее, разница в методе передачи, GET в URL передается, POST в теле запроса.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача значения input в функцию js wwonder Элементы интерфейса 7 15.03.2017 17:57
Передача значения в скрипт из поля input rewired Элементы интерфейса 2 10.10.2016 14:01
Передача нового значения value в select tvixa Элементы интерфейса 5 08.09.2015 15:41
XMLHttpRequest передача массива серверу JaneLane AJAX и COMET 5 16.05.2014 12:09
Сократить кол-во инпут до одного, динамически менять значения тега input Dikkiy jQuery 2 01.05.2012 02:33